Study Guide [Systems Design]
From zero to L5-ready in ~2 hours/day. Full-stack weighting: deep on APIs, data modeling, caching, and real-time; conversational on infra internals (know what Kafka does and when, not how it stores segments). Ratio: weeks 1β2 build vocabulary, weeks 3β4 are practice β the interview skill is doing designs, not reading about them.
Priority tiers β where your hours go
COLD
Must know cold: request lifecycle, SQL vs NoSQL + indexes, caching (all layers + invalidation), replication vs sharding, load balancing, queues & async work, pagination, WebSocket/SSE/polling, idempotency, back-of-envelope math, CAP in plain words.
TALK
Know well enough to discuss: consistent hashing, rate limiting algorithms, CDC/outbox, search indexing (Elasticsearch), blob storage + CDN, fan-out strategies, distributed locks, auth (sessions/JWT/OAuth).
SKIP
Skip for full-stack L5: consensus internals (Raft/Paxos), Kafka/DB storage internals, Kubernetes, service mesh, gossip protocols, custom infra design (design a database, design Kafka).
Week 1 β Foundations
how one server becomes many
Goal: draw and defend the default skeleton β client β CDN β LB β stateless app tier β cache β DB β and explain every arrow.
Day 1 Β· Request lifecycle
DNS β LB β app server β DB and back. Vertical vs horizontal scaling; why stateless app servers scale horizontally for free.
Day 2 Β· Databases I
SQL vs NoSQL β the honest answer: Postgres until proven otherwise. Indexes: what a B-tree index buys, what writes pay. Model a schema for a small app.
Day 3 Β· Databases II
Replication (read replicas, primary failover, replication lag) vs sharding/partitioning (choosing a partition key, hot partitions). When each is the answer.
Day 4 Β· Caching
The full ladder: browser β CDN β app cache (Redis) β DB. TTL vs explicit invalidation ("the two hard things"), cache-aside pattern, eviction (LRU), stampede.
Day 5 Β· Consistency, plainly
CAP without the theory: on a network split, do you serve stale (available) or refuse (consistent)? Strong vs eventual with product examples β bank balance vs like count.
Days 6β7 Β· Consolidate
Do the math drill (panel below) until fast. Design "URL shortener" cold β the hello-world of system design. Note what you couldn't answer; that's Monday's reading.
Week 2 β Communication & async
your full-stack strength zone
Goal: own the client-to-server contract better than backend-only candidates β this is where you differentiate.
Day 8 Β· API design
REST conventions, error shapes, versioning. GraphQL vs REST vs gRPC in one paragraph each. Pagination: offset vs cursor and why offset dies at depth.
Day 9 Β· Real-time
Polling vs long-polling vs SSE vs WebSocket β cost, direction, reconnect story, when each wins. The full-stack view: what the client does on disconnect.
Day 10 Β· Queues & async
Message queue vs pub-sub; SQS vs Kafka positioning (task queue vs replayable log). Retries, dead-letter queues, and why retries force idempotency.
Day 11 Β· Idempotency & reliability
Idempotency keys on writes, exactly-once is a lie (at-least-once + dedupe), webhooks with signed payloads + retry backoff. Plaid-country material.
Day 12 Β· Edges of the system
CDN + blob storage (S3) for media, presigned upload URLs. Rate limiting (token bucket in one diagram). Auth in five sentences: sessions vs JWT, OAuth flow shape.
Days 13β14 Β· Consolidate
Design "typeahead/autocomplete" and "notification system" cold, using the playbook, 45 min each, out loud. Grade yourself against the playbook's scoring panel.
Week 3 β Practice designs
one per day, 45 min, out loud, playbook open
Goal: eight designs done. Each one exists to teach a specific concept β after finishing, read a reference solution and note what you missed.
- Day 15 Β· News feed (Twitter/Instagram) β teaches fan-out on write vs read, celebrity problem. The single most-asked question; do it twice.
- Day 16 Β· Chat (WhatsApp/Slack) β WebSockets at scale, message ordering, delivery receipts, online presence.
- Day 17 Β· Ticket/booking (Ticketmaster) β contention: two users, one seat. Locking vs atomic conditional writes; reservations with TTL.
- Day 18 Β· Live dashboard (metrics/fleet monitoring) β ingest pipeline, time-series aggregation, push vs pull to the client. Waymo-flavored.
- Day 19 Β· Payment/webhook system β idempotency end to end, retries, reconciliation, audit log. Plaid-flavored.
- Day 20 Β· Rate limiter + URL shortener redux β both small; practice doing a tight 25-minute version. Teaches pacing.
- Day 21 Β· Collaborative doc or multi-tenant app builder β permissions, tenant isolation, optimistic UI + conflict handling. Retool-flavored.
Week 4 β Mocks & sharpening
simulate, patch, rest
Goal: three full mocks under real conditions. By now the playbook sequence should run on rails; mocks expose where it derails.
Days 22β26 Β· Mock cycle Γ3
Mock (45 min, unseen question, spoken aloud or with a partner/AI interviewer) β same-day review: which step ran long, which deep dive was thin β one day patching that gap β next mock.
Day 27 Β· Company pass
One hour per upcoming interview: reread their product, pick the 2 most likely question shapes (panel below), sketch each for 15 min. Not full designs β just openings.
Day 28 Β· Rest
Skim the playbook and the math drill. No new material. Cramming week-4 infra trivia costs more than it buys.
Back-of-envelope kit β memorize
- QPS: requests/day Γ· 100,000 β avg QPS. Peak β 3β5Γ. (1M/day β 12 QPS β tiny.)
- One Postgres box comfortably does thousands of simple QPS β don't shard early.
- Storage: 1M rows Γ 1 KB = 1 GB. A "huge" 1 TB table still fits one machine.
- Latency ladder: memory ~100ns Β· SSD ~100Β΅s Β· same-region network ~1ms Β· cross-region ~50β150ms Β· disk seek ~10ms. Conclusion that matters: cache hits are ~100Γ cheaper than DB reads, cross-region is the killer.
- Sizes: UUID 16 B Β· timestamp 8 B Β· tweet ~280 B Β· image ~500 KB Β· 1 min video ~50 MB (β blob storage + CDN, never the DB).
Default technology shortlist
- Postgres β default store. Redis β cache, counters, locks. Kafka/SQS β async + spikes. S3 + CDN β media. Elasticsearch β text search. DynamoDB/Cassandra β massive simple-key write scale.
- One reason each, never the internals. "Redis because sub-ms reads for hot data" is complete.
Company flavors β your five targets
- Waymo: real-time and latency-aware β fleet dashboards, log/metrics ingestion, freshness trade-offs. Lean on Day 18. Their infra prompts (petabyte lidar pipelines) are for infra roles; full-stack gets the dashboard/data-product version.
- Plaid: reliability of money-adjacent data β webhooks, idempotency, retries, reconciliation, third-party APIs that fail. Day 11 + Day 19 are the prep.
- Google: most classic β scale numbers, trade-off rigor, crisp requirementsβdesign traceability. The playbook as-is, executed cleanly.
- Retool: product-minded full-stack β multi-tenancy, permissions/RBAC, query execution against customer DBs, optimistic UI. Day 21.
- Common denominator: every one rewards the API + data-model step done well β your strongest step. Never rush it.
Resources (in order)
- Hello Interview (hellointerview.com) β best free written guides + graded practice; matches this plan's structure.
- Alex Xu, System Design Interview Vol 1 β read weeks 1β2, one chapter/day covers most concept days.
- Jordan Has No Life / System Design Fight Club (YouTube) β watch a solution after attempting each week-3 problem, never before.
- Skip: System Design Primer as a syllabus (reference only), papers, and anything about building infra from scratch.